The present technique relates to an apparatus and method for processing burst read transactions.
It is known for data processing systems to support the use of burst read transactions, where a master device may initiate a single read transaction that causes multiple data items to be retrieved and returned to the master device. The individual data items may be referred to as beats of the burst transaction and hence a burst read transaction will comprise a plurality of beats. In order to perform the burst transaction, the master device will typically issue an address transfer to a slave device via a connection medium of the system. The connection medium can take a variety of forms, but could for example be an interconnect interconnecting one or more master devices with one or more slave devices.
Typically the communication between the master devices and slave devices is arranged to conform to a particular communication protocol, and when handling burst read transactions, it is often the case that the beats of the read transaction must be returned to the processing circuitry of the master device in a predetermined order. This response ordering rule on the data beats can place significant constraints on elements within the system where there may be intermediate nodes which are collecting beats from divergent sources and then sending those beats upstream towards the master device in the required order. Such intermediate nodes for example may need to add reorder buffers to ensure that the beats received can be buffered and reordered so that they can be propagated onto the master device in the required predetermined order.
Such reordering constraints can limit the extent to which burst read transactions are used. For example, in a particular implementation, the burst size may be limited to relatively small numbers of beats so as to reduce the reorder buffer requirements within the system. However, this avoids the potential performance benefits that can be realised by using larger burst transactions. Alternatively, a particular implementation may choose to serialise all read transactions, hence avoiding the use of burst transactions altogether, to thereby avoid the need for reorder buffers. However, such systems typically suffer from poor performance relative to systems that do allow the use of burst read transactions.
Accordingly, it would be desirable to provide an improved mechanism for processing burst read transactions within systems where a response ordering rule is associated with the beats of the transaction.